﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
namespace VNSoft.Administrator
{
    public partial class User : System.Web.UI.Page
    {
        clsXuLy ex = new clsXuLy();
        SqlParameter[] p;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                btnCancel_Click(sender, e);
            }
        }
        protected void btnAdd_Click(object sender, EventArgs e)
        {
            if (txtTenTruyCap.Text.Trim().Equals("") || txtMatKhau.Text.Trim().Equals("")) gstGetMess("Nhập tên tài khoản và mật khẩu", "");
            else
            {
                try
                {
                    p = new SqlParameter[4];
                    p[0] = new SqlParameter("@TaiKhoan", txtTenTruyCap.Text.Trim());
                    p[0].SqlDbType = SqlDbType.NVarChar;
                    p[1] = new SqlParameter("@MatKhau", ex.Encrypt(txtMatKhau.Text.Trim()));
                    p[1].SqlDbType = SqlDbType.NVarChar;
                    p[2] = new SqlParameter("@SuDung", ckSuDUng.Checked ? 1 : 0);
                    p[2].SqlDbType = SqlDbType.Int;
                    p[3] = new SqlParameter("@ID", Guid.NewGuid());
                    p[3].SqlDbType = SqlDbType.UniqueIdentifier;
                    ex.ExecuteNonQuerry("sp_NguoiDung_Insert", p);
                    btnCancel_Click(sender, e);
                    gstGetMess("Thêm thành công", "");
                }
                catch (Exception ax)
                {
                    gstGetMess("Lỗi: " + ax.Message, "");
                }
            }
        }
        protected void gvNguoiDung_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            string ID = e.CommandArgument.ToString();
            hdTaiKhoan.Value = ID;
            Guid IDs = new Guid(hdTaiKhoan.Value);
            p = new SqlParameter[1];
            p[0] = new SqlParameter("@ID", IDs);
            p[0].SqlDbType = SqlDbType.UniqueIdentifier;

            if (e.CommandName.Equals("Select"))
            {
                DataTable dt = ex.GetData("sp_NguoiDung_ListByID", p);
                if (dt.Rows.Count > 0)
                {
                    txtTenTruyCap.Text = dt.Rows[0]["Username"].ToString();
                    ckSuDUng.Checked = dt.Rows[0]["Active"].ToString().Trim().Equals("1") ? true : false;
                    txtMatKhau.TextMode = TextBoxMode.SingleLine;
                    txtMatKhau.Text = "************";
                    txtMatKhau.ToolTip = "Không thay đổi được mật khẩu";
                    txtTenTruyCap.ToolTip = "Không thay đổi được tên truy cập";
                }

                btnUpdate.Visible = true;
                btnAdd.Visible = false;
                txtTenTruyCap.ReadOnly = true;
                txtMatKhau.ReadOnly = true;
            }
            else
                if (e.CommandName.Equals("Del"))
                {
                    try
                    {
                        ex.ExecuteNonQuerry("sp_NguoiDung_Delete", p);
                        btnCancel_Click(sender, e);
                        gstGetMess("Xóa thành công", "");
                    }
                    catch (Exception ax)
                    {
                        gstGetMess("Lỗi: " + ax.Message, "");
                    }
                }
        }
        protected void btnUpdate_Click(object sender, EventArgs e)
        {
            try
            {
                Guid ID=new Guid(hdTaiKhoan.Value);
                p = new SqlParameter[2];
                p[0] = new SqlParameter("@ID",ID );
                p[0].SqlDbType = SqlDbType.UniqueIdentifier;
                p[1] = new SqlParameter("@SuDung", ckSuDUng.Checked ? 1 : 0);
                p[1].SqlDbType = SqlDbType.Int;
                ex.ExecuteNonQuerry("sp_NguoiDung_Update", p);
                btnCancel_Click(sender, e);
                gstGetMess("Cập nhật thành công", "");
            }
            catch (Exception ax)
            {
                gstGetMess("Lỗi: " + ax.Message, "");
            }
        }
        protected void btnCancel_Click(object sender, EventArgs e)
        {
            txtTenTruyCap.Text = "";
            txtMatKhau.Text = "";
            txtTenTruyCap.Focus();
            ckSuDUng.Checked = true;
            gvNguoiDung.DataSource = ex.GetData("sp_NguoiDung_List");
            gvNguoiDung.DataBind();
            btnAdd.Visible = true;
            btnUpdate.Visible = false;
            txtTenTruyCap.ReadOnly = false;
            txtMatKhau.ReadOnly = false;
        }
        private void gstGetMess(string gstMess, string gstLink)
        {
            if (gstLink == "")
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), " ", "alert('" + gstMess + "')", true);
            else
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), " ", "alert('" + gstMess + "');window.location.href='" + gstLink + "'", true);

        }
    }
}